package org.wak.action
{
	import flash.events.IEventDispatcher;
	
	/**
	 * Common interface between interactable objects. for Scene objects
	 * and inventory items.
	 * 
	 */	
	public interface IInteractable extends IEventDispatcher
	{
		/**
		 * id of this interactable entity 
		 * @return the id of the item
		 * 
		 */		
		function get interactableId():String ;
		
		/**
		 * A text with the name for gui purposes. 
		 * @return the descriptive name of the intearactable item. 
		 * 
		 */		
		function get interactionName():String ;
		
		/**
		 * If the item is true for unitary use in the scumm style adventures, the action Use
		 * will be ready only when the player try Use with this interactable without wait a 
		 * second parameter.  
		 * @return true if the interactable is for unitary use.
		 * 
		 */		
		function get unitaryUse():Boolean ;
		
		/**
		 * The item description 
		 * @return String with description. 
		 * 
		 */		
		function get description():String ;
		
		/**
		 * The default action to apply on this Interactable 
		 * @return an Action id to act as default action.
		 * 
		 */		
		function get defaultAction():String ;
		
	}
}